package com.black.platform.organization.service.bz;

import com.baomidou.mybatisplus.extension.service.IService;
import com.black.platform.organization.po.Organization;


import java.util.List;

/**
 * @author linwenfeng
 */
public interface OrganizationService extends IService<Organization> {
    /**
     * 新增组织机构
     *
     * @param organization 组织机构
     */
    void addOrganization(Organization organization);

    /**
     * 移除组织机构
     *
     * @param organization 组织机构
     * @return 成功：1 失败：0
     */
    int removeOrganization(Organization organization);

    /**
     * 关闭组织机构
     *
     * @param organization 组织机构
     * @return 成功：1 失败：0
     */
    int closeOrganization(Organization organization);

    /**
     * 更新组织机构信息
     *
     * @param organization 组织机构
     * @return 成功：1 失败：0
     */
    int updateOrganization(Organization organization);

    /**
     * 根据comCode向下获取所包含的归属机构
     *
     * @param comCode          归属机构代码
     * @param comName          归属机构名称
     * @param isIncludeInvalid 是否包含无效的
     * @return List<Organization> 归属机构集
     */
    List<Organization> getOrganizationsWithChildren(String comCode, String comName, boolean isIncludeInvalid);

    /**
     * 根据comCode向下获取所包含的归属机构代码
     *
     * @param comCode 归属机构代码
     * @return 归属机构代码集 格式: comCode,comCode,comCode...
     */
    String getPowerComCode(String comCode);

}
